README

Replication codes for Holzer, J. & McConnell, K., "Weighting the Evidence: A Rank-Dependent Model of Outdoor Recreation". 


1. Note

The study consists of three parts: A. Estimation of the models; B. Simulation of the recreational summer flounder fishery in New Jersey; and C. An example on rank-dependent utility and revealed preference. 

Part A (estimation) uses data from choice experiments to estimate anglers' preferences under i) linear and ii) rank-dependent specifications (for both Tversky and Kahneman and Prelec weighting functions). Using the preferences, part B (simulation) calibrates the summer flounder recreational fishery in New Jersey for the year 2021, and then reruns the model for alternative policy options (i.e., alternative bag and size limits), in order to obtain estimates of welfare changes associated with each policy intervention and each specification of preferences.

Part C (example) illustrates how to estimate rank-dependent preferences using travel cost models. To this end, it uses negative binomial regressions to estimate catch-per-trip for the summer flounder fishery in New Jersey, New York, and Connecticut.  


2. Files

A. Estimation:

This section uses proprietary data. Researchers seeking access to the data will need to contact NOAA Fisheries' Office of Science and Technology (https://www.fisheries.noaa.gov/about/office-science-and-technology).

The three main files for this part are:

 - data_formatting.do: cleans and formats the 2022 summer flounder raw survey data (it creates the dataset ReadyDataFluke2022.xlsx).
 - models.m: estimates linear and rank-dependent preferences using the dataset generated by data_formatting.do. These results are presented in Table 2 and are used in part B (simulation).
 - Figures.m: generates figures 2 and A-2.

Additionally, models.m uses the following user-written functions:

 - likelihoodLinear.m: evaluates the log-likelihood function corresponding to the linear utility model.
 - likelihoodGrad_RDUT_TK.m: evaluates the log-likelihood function and its gradient for the RDU utility model (Tversky and Kahneman weighting function).
 - likelihoodGrad_RDUT_Prelec.m: evaluates the log-likelihood function and its gradient for the RDU utility model (Prelec weighting function).

The run time of models.m is aproximately 3 minutes.


B. Simulation:

The simulations use data on catch-per-trip and catch-at-length for directed trips that targeted or caught summer flounder in New Jersey in 2021. These data come from a data request to MRIP and need to be requested from MRIP by interested researchers.

The main files for the simulations are:

 - calibratedSeasonNJ2021.m: calibrates the number of choice occasions for each of the three utility models (Tversky and Kahneman, Prelec weighting functions, and expected utility, that is, for the weighting function w(p)=p) so that the number of expected trips for New Jersey in 2021 matches the observed data. 
 - predictedSeasonNJ2021_CHANGE.m: these files predict the number of trips, landings, and welfare change for each of the three utility models for New Jersey in 2021, under alternative policy scenarios. As an example, we provide the file predictedSeasonNJ2021_mrip_simul_bl_up.m, which predicts the changes with respect to the calibrated baseline when the bag limit is increased by one fish). The corresponding results of these simulations are presented in Table 3.
 - predictedSeasonNJ2021_conser_equivalence_CHANGE.m: these files predict the number of trips, landings, and welfare change for each of the three utility models for New Jersey in 2021, under conservation equivalent policy scenarios for each set of preferences, that is, scenarios that match the changes in total harvest in Table 3. As an example, see predictedSeasonNJ2021_conser_equivalence_RDU_Prelec_increase.m, which predicts for RDU_Prelec preferences, the changes in number of trips and welfare when policies match the incraese in harvest resulting from an increase in the bag limit in Table 3). The corresponding results of these simulations are presented in Table 4.

These files use the preferences from the estimation stage, and demographic information of survey respondents from the cleaned data generated by data_formatting.do. Additionally, these simulation files use the following datasets as inputs: 

 - CatchPerTrip2021.mat: generated by generate_distributions_catch_per_trip.m. This code uses the user-written function CatchTripDistribution.m, and the function gendist.m (available for download at: https://www.mathworks.com/matlabcentral/fileexchange/34101-random-numbers-from-a-discrete-distribution).
 - ProbFlukeSizesNJ2021.txt: generated by the code PreparingCatchDistributions.do using data from the data request to MRIP.
 - AvgeHarvestTrip.xlsx: auxiliar file that includes the average catch per trip per species at the state and yearly level, generated from MRIP data.

This file used as an input is not included:
 - trip_costs_NE.xlsx: is generated from the raw data of the latest expenditure survey. Authors submitted a request to the Northeast Fisheries Science Center for the data. Interested researcher must request the data from the Office and Science and Technology. Public report available at: https://spo.nmfs.noaa.gov/sites/default/files/TM201.pdf.

Additionally, the files calibratedSeasonNJ2021.m and predictedSeasonNJ2021_CHANGE.m use the following user-written functions:

- pstar.m: evaluates the difference between the actual and the expected keep for a given minimum size limit.
- RDU_tk.m: evaluates the rank-dependent utility for the Tversky and Kahneman weighting function, given parameters and a probability distribution determining the ranks.
- RDU_prelec.m: evaluates the rank-dependent utility for the Prelec weighting function, given parameters and a probability distribution determining the ranks.
- W_tk.m: evaluates the Tversky and Kahneman weighting function given a value for the gamma parameter and a probability level.
- W_prelec.m: evaluates the Prelec weighting function given a value for the gamma parameter and a probability level.

The approximate run time of the calibration file (calibratedSeasonNJ2021.m) and of each of the simulation files (predictedSeasonNJ2021_CHANGE.m) is 5 hours.


C. Revealed preference example:

This part uses the following three files:

- nbreg.do: combines the auxiliary datasets and estimates negative binomial regressions for the catch-per-trip of summer flounder in New Jersey, New York, and Connecticut. The results of the estimation are shown in Table 5, and Table A-1 in the online appendix. This file uses as input data on catch-per-trip for summer flounder at the trip level from MRIP (interested researchers must to request these data directly from NOAA's Northeast Fisheries Science Center: https://www.fisheries.noaa.gov/contact/contact-information-northeast-fisheries-science-center), data on ocean bottom temperature from NOAA's Geophysical Fluid Dynamics Laboratory (interested researchers can request directly at: https://www.gfdl.noaa.gov/), and the data file ssb_summer_flounder.xlsx.

- ssb_summer_flounder.xlsx: dataset with the stock biomass for summer flounder for the period 1982-2020, constructed from the Summer Flounder Management Track Assessment for 2021 (available to the public at: https://www.asmfc.org/uploads/file/63ed4d3c2021_summer_flounder_MTA_report.pdf).

- simulatedRanks.m: uses the estimates from nbreg.do to simulate the ranks used to evaluate the generic weighting function in Table 6.

The approximate run time of nbreg.do is 1 hour.


D. Output:

The output subfolder includes the files below.

D.1 Estimation

- Figure2.eps, FigureA2_a.eps, FigureA2_b.eps: generated by the code Figures.m
- Table2.xlsx: generated by the code models.m

D.2 Simulation

- PredictedNJ_2021_sl_up.xls, PredictedNJ_2021_sl_down.xls, PredictedNJ_2021_bl_up.xls, PredictedNJ_2021_bl_down.xls: respectively generated by the codes PredictedNJ_2021_sl_up.m, PredictedNJ_2021_sl_down.m, PredictedNJ_2021_bl_up.m, PredictedNJ_2021_bl_down.m. These output files are used to populate Table 3 (e.g., PredictedNJ_2021_bl_down.xls for the first three rows under heading "SF bag limit=2", PredictedNJ_2021_bl_up.xls for the next three rows under heading "SF bag limit=4", and so on).

- PredictedNJ_2021_EU_equivalent_landings_decrease.xls, PredictedNJ_2021_EU_equivalent_landings_increase.xls, PredictedNJ_2021
_RDU_Prelec_equivalent_landings_decrease.xls,PredictedNJ_2021_RDU_Prelec_equivalent_landings_increase.xls, PredictedNJ_2021_RDU_TK_equivalent_landings_decrease.xls, PredictedNJ_2021_RDU_TK_equivalent_landings_increase.xls: respectively generated by the codes predictedSeasonNJ2021_conser_equivalence_RDU_Prelec_decrease.m, predictedSeasonNJ2021_conser_equivalence_RDU_Prelec_increase.m, etc. These output files are used to populate Table 4 (e.g., PredictedNJ_2021_RDU_TK_equivalent_landings_decrease.xls for the row under heading "b=3, s=18.1; RDU (T&K)", PredictedNJ_2021_RDU_TK_equivalent_landings_increase.xls for the row under heading "b=3, s=17.9; RDU (T&K)", and so on).

D.3 Revealed preference example

- TableA1.txt and log file log_Table5.smcl: generated by the code nbreg.do

E. Software Information:

Matlab R2023a Update 1 (9.14.0.2239454) 64-bit (win64) March 30, 2023
StataNow/MP 18.5 for Windows (64-bit x 86-64) Revision 22 May 2024

